﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Data;
using CurriculasEntities;

namespace CurriculasDAO
{
    
     public class UnidadAprendizajeDAO : IBaseDA<UnidadAprendizajeBE , int>
    {

         public UnidadAprendizajeBE Crear(UnidadAprendizajeBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.Unidades.Add(entidad);
                db.SaveChanges();
            }
            return entidad;
        }

         public UnidadAprendizajeBE Obtener(int id)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.Unidades.Find(id);
            }
        }

         public UnidadAprendizajeBE Modificar(UnidadAprendizajeBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.Unidades.Attach(entidad);
                db.Entry(entidad).State = EntityState.Modified;
                db.SaveChanges();
            }
            return entidad;
        }

         public void Eliminar(UnidadAprendizajeBE entidad)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                db.Unidades.Remove(entidad);
                db.SaveChanges();
            }
        }

         public ICollection<UnidadAprendizajeBE> ListarTodos()
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.Unidades.ToList();
            }
        }

         public ICollection<UnidadAprendizajeBE> ListarTodos(Expression<Func<UnidadAprendizajeBE, bool>> where)
        {
            using (EFContext db = new EFContext(Utility.ObtenerCadena()))
            {
                return db.Unidades.Where(where).ToList();
            }
        }

         //public ICollection<SilaboBE> DeleteSilabos(int codSilabo)
         //{
         //    string _sentenciaSql = "usp_EliminarSilaboBibliografia " + codSilabo;

         //    using (EFContext db = new EFContext(Utility.ObtenerCadena()))
         //    {
         //        return db.Database.SqlQuery<SilaboBE>(_sentenciaSql).ToList(); ;
         //    }
         //}

    }
}
